package cn.ml.duoXianCheng.可见性;

public class C2_线程安全_可见性案例 {
    //private static boolean flag = false;
    //当 使用volatile时此变量改变时会强行改变内存值，然后强行改变引用此变量的线程的值
    private static volatile boolean flag = false;

    public static void main(String[] args) throws InterruptedException {
        new Thread(()->{
            System.out.println("1号线程启动，执行while循环");
            long num = 0;
            while (!flag){
                num++;
                //System.out.println("num = "+ num);
            }
            //flag为true时才会打印，并且程序会停止
            System.out.println("num = "+ num);
        }).start();

        Thread.sleep(1000);

        new Thread(()->{
            System.out.println("2号线程启动，更改变量 flag为true");
            flag = true;
        }).start();

    }

}
